package com.demo.behavioral.state;

/**
 * 状态模式
 * 核心思想就是：当对象的状态改变时，同时改变其行为。
 * 实现方法：新建一个抽象状态类接口及其多个实现类，再新建一个环境角色，持有一个具体状态类的实例，环境角色中核心方法就是对某些状态修改具体状态类的实例
 * @author allen
 *
 */
public class Test {
	
	public static void main(String[] args) {
		//以在线投票系统为例，当投票1次时显示投票完成，2次时当投票2次时，显示重复投票，当投票超过2次时，进入恶意刷屏状态
        VoteManager vm = new VoteManager(); 
        //用户名作为投票记录，在投票后也更新对象状态
        vm.logVote("aa"); 
        vm.logVote("bb"); 
        vm.logVote("aa"); 
        vm.logVote("bb");   
        vm.logVote("bb");
		
	}

}
